package com.kaigejava.juc.queue.api;

import org.junit.Test;

import java.util.concurrent.ArrayBlockingQueue;

/**
 * @author kaigejava
 *
 * 第二组API:
 *带有返回值的一组API
 * （青年时期，为人处事有成长）
 * 添加元素：offer():注意，是空参数。当队列满的时候，会返回false.而不会抛出异常的
 * 删除元素：poll()：当队列为空的时候，再从队列异常元素的时候，会返回null.
 * 检查元素：peek():当队列为空的时候，再调用此方法，会返回null
 */
public class ReApi {

    @Test
    public void reApiTest(){
        ArrayBlockingQueue<String> abQueue = new ArrayBlockingQueue<>(3);
        System.out.println(abQueue.offer("凯哥"));
        System.out.println("第一个元素添加成功");
        System.out.println(abQueue.offer("凯哥java"));
        System.out.println("第二个元素添加成功");
        System.out.println(abQueue.offer("kaigejava"));
        System.out.println("第三个元素添加成功");
        //当队列满的时候，再向队列中添加元素，返回false.
        System.out.println(abQueue.offer("凯哥Java(kaigejava)"));
        System.out.println("第四个元素添加成功");
        //移除测试
      for(int i = 0;i<4;i++){
            System.out.println("被删除的元素是:"+abQueue.poll());
            System.out.println("当前队列的队首元素是：:"+abQueue.peek());
        }




    }
}
